import java.util.HashMap;
/**
 * 
 * @version 10/03/10
 *
 */

public class TabIdent {
	private HashMap <String, Ident> table;
	
	public TabIdent(int taille){
		table = new HashMap <String, Ident> (taille);
	}
	
	public Ident chercheIdent(String clef) throws TabIdentException{
		if(existeIdent(clef)){
			return table.get(clef);
		}
		else{
			throw new TabIdentException("<chercheIdent("+clef+")> Cet Ident n'est pas dans la table : "+clef);
		}
	}
	
	public boolean existeIdent(String clef){
		return table.containsKey(clef);
	}
	
	public void rangeIdent(String clef, Ident id) throws TabIdentException{
		if(!existeIdent(clef))
			table.put(clef, id);
		else
			throw new TabIdentException("<rangeIdent("+clef+", "+id+")> Cet Ident est deja dans la table : "+clef);
	}
	
	public int getType(String clef) throws TabIdentException{
		if(existeIdent(clef)){
			return table.get(clef).getType();
		}
		else
			throw new TabIdentException("<getType("+clef+")> Cet Ident n'est pas dans la table : "+clef);
	}
	
	//AJOUTEE 10/03/10
	public int getValue(String ident){
		try {
			return ((IdConst)(chercheIdent(ident))).getValeur();
		} catch (TabIdentException e) {
			// TODO Auto-generated catch block
			Yaka.yvm.correct=false;
			System.out.println(e.getMessage());
		}
		return 0;
	}	
	
}
